/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package es.us.gestiontareas.bean;

import es.us.gestiontareas.entity.Usuario;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.*;

/**
 *
 * @author master
 */
@Stateless
public class UsuarioFacade extends AbstractFacade<Usuario> {

    @PersistenceContext(unitName = "YCP_GetionTareas-ejbPU")
    private EntityManager em;

    @Override
    protected EntityManager getEntityManager() {
        return em;
    }

    public UsuarioFacade() {
        super(Usuario.class);
    }

    public Usuario findById(Integer id) {
        Query q = em.createNamedQuery("Usuario.findById");
        q.setParameter("id", id);
        return (Usuario) q.getSingleResult();

    }

    public Usuario findByNombre(String nombre) {
        Query q = em.createNamedQuery("Usuario.findByNombre");
        q.setParameter("nombre", nombre);
        return (Usuario) q.getSingleResult();

    }

    public Usuario findByPassword(String password) {
        Query q = em.createNamedQuery("Usuario.findByPassword");
        q.setParameter("password", password);
        return (Usuario) q.getSingleResult();

    }

    public Usuario insert(Usuario usuario) {
        /*
        * El usuario es un objeto por eso no tengo por 
       * que pasar parametros por separado
        */
               
        return update(usuario);
    }

    public Usuario update(Usuario usuario) {
        return em.merge(usuario);

    }

    public Usuario delete(Usuario usuario) {

        usuario.setEstado(0);
        return update(usuario);
    }

}
